The invention pertains to digital data processing and, more particularly, to image analysis. It has application, by way of non-limiting example, in the reading of bar codes and, particularly, two-dimensional bar codes.
Though of only relative recent advent, bar codes are used throughout the marketplace. The linear bar code was first adopted by a trade association in the 1970's and is now used on products shipped and sold throughout the industrial world. The most common code, known as the UPC (uniform product code) in the United States, is a combination twelve to fourteen human-readable characters and corresponding machine-readable bars (or symbols) that uniquely identify products labeled in conformance with the UPC system. The bars are automatically interpreted by readers, i.e., “bar code readers,” and used to look-up manufacturer and product names, as well as pricing, inventory and other product-related information, in computer databases.
Early success of the linear bar code led to its extension into so-called stacked (or multi-row) codes and into two-dimensional (2D) codes. Stacked codes comprise a set of two or more linear bar codes placed vertically adjacent one another to encode two or more respective codes. An example is the four-deep stacked code used in the automobile industry to encode part number, quantity, supplier, and serial number. Another example it the Codablock symbology.
2D bar codes encode information along two axes—not just one, as is the case of the linear (1D) bar code. They can be used to encode a considerable amount of information in a small area. Though one of the most recognizable uses of 2D bar codes is on parcel shipping labels, they are increasingly used by manufactures to mark products themselves—not merely packaging. Examples include semiconductor wafers, milled products (such as turbine blades), surgical instruments, recyclable containers, glassware, among others. Common 2D bar codes are Maxicode, MiniCode, PDF 417, ArrayTag, DataGlphys, and DataMatrix, to name a few.
As the use of bar codes extends to manufactured products, the challenges facing makers of bar code readers increase. The patterns that make up 2D bar codes on freshly printed paper labels are readily interpreted by conventional scanning wands or fixed-mount readers. This is not the case with bar codes on damaged labels (e.g., wrinkled or smudged labels) nor with those formed on other surfaces, such as those of semiconductor wafers, surgical instruments and other manufactured goods themselves, by way of example.
An object of this invention is to provide improved methods for digital data processing and, more particularly, for image analysis. A more particular object is to provide such improved methods and apparatus for reading of bar codes.
A related object of the invention is to provide such improved methods and apparatus for reading stacked-linear and two-dimensional bar codes, among others.
Yet still another object of the invention is to provide such improved methods and apparatus as facilitate the reading of bar codes on manufactured goods, damaged labels and other surfaces.
Still other objects are to provide improved methods and apparatus for optical character recognition and other forms of machine vision analysis.